package com.gy.controller.assistant;

import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import reactor.core.publisher.Flux;

@AiService(
        wiringMode = AiServiceWiringMode.EXPLICIT,
        streamingChatModel = "streamingChatModel",
        chatMemoryProvider = "chatMemoryProvider",
        tools = {"paperTool", "patentTool","studentAwardTool"}
)
public interface XiaoNingAgent {

    Logger log = LoggerFactory.getLogger(XiaoNingAgent.class);


    @SystemMessage(fromResource = "xiaoning-prompt-temple.txt")
    Flux<String> chat(
            @MemoryId String memoryId,
            @UserMessage String userMessage
    );


}
